// 关于 property 实体的操作
// 实体 property 字段 id title context createTime updateTime
// 成功响应 onSuccess 失败响应 onError

// 导入数据库操作对象
const {sqlOne} = require('../db/common')

// 添加数据
exports.addProperty = async (req, res) => {

  try{
    req.body.createTime = req.nowTime
    // 获取参数
    const { title, context, createTime } = req.body
    // 添加数据
    const sql = 'insert into property(title, context, createTime) values(?, ?, ?)'
    const data = [title, context, createTime]
    // 执行数据处理
    const result = await sqlOne(sql, data)
    // 返回结果 根据影响行数
    if(result.affectedRows === 1){
      return res.onSuccess()
    }
  }catch(e){
    return res.onError(e)
  }
  return res.onError()
}

// 修改数据
exports.updateProperty = async (req, res) => {
  try{
    // 获取参数
    const { id } = req.body
    // 修改法
    const sql = 'update property set ? where id = ?'
    req.body.updateTime = res.nowTime
    // 执行数据处理
    const result = await sqlOne(sql, [req.body, id])
    // 返回结果 校驗對象
    if(result.affectedRows === 1){
      return res.onSuccess()
    }
  }catch(e){
    return res.onError(e)
  }
  return res.onError()

}

// 删除数据
exports.deleteProperty = async (req, res) => {
  try{
    // 获取参数
    const { id } = req.params
    // 删除法
    const sql = 'delete from property where id = ?'
    // 执行数据处理
    const result = await sqlOne(sql, id)
    // 返回结果 校驗對象
    if(result.affectedRows === 1){
      return res.onSuccess()
    }
  }catch(e){
    return res.onError(e)
  }
  return res.onError()
}

// 获取列表
exports.getPropertyList = async (req, res) => {
  try{
    // 获取参数
    const { id } = req.params
    // 获取列表
    let sql = 'select * from property'
    if(id){
      sql += ' where id = ?';
    }
    // 执行数据处理
    const result = await sqlOne(sql, id)
    // 返回结果 校驗對象
    if(result){
      return res.onSuccess(result)
    }
  }catch(e){
    return res.onError(e)
  }
  return res.onError()

}